package com.yami.shop.vo.group;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.Valid;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class GroupVo implements Serializable {

    @Schema(description = "创建群组 ID，支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式，最大长度 64 字节", required = true)
    private String groupId;

    @NotEmpty(message = "群组名称不能为空")
    @Schema(description = "群组id对应的群组名称", required = true)
    private String groupName;

    @Schema(description = "群主id")
    private String creatorUserId;

    @Schema(description = "群成员列表", required = true)
    private List<UserIdVo> users;


    @Schema(description = "操作人id")
    private String userId;

    @Schema(description = "类型")
    private Integer type;

    @Schema(description = "是否官方群 默认0否，1是")
    private Integer isOfficial;

    @Schema(description = "店铺id")
    private Long shopId;

    @Schema(description = "头像")
    private String pic;
    
    @Schema(description = "超级群到期时间")
    private Date expirationTime;

    @Schema(description = "资费套餐id")
    private Long costId;
    
}
